package com.wjm.api;

import java.util.ArrayList;
import java.util.Collection;

/**
 * Data:2022年07月05日
 * Author:wjm
 * Content: 集合
 *
 *
 *  Collection是集合接口，通常应用的派生子接口有List(有序，可重复)和set(无序，不可重复)
 *             List的实现类：ArraryList，LikedList
 *             set的实现类：HashSet，TreeSet
 *  Map也是集合接口，特点是：键值对的形式来存储数据
 *             实现类：HashMap,TreeMap
 *
 */
public class CollectionDemo {
    public static void main(String[] args) {
        //创建一个集合对象
        Collection collection = new ArrayList();

        /*
        * int size(); 返回集合中元素个数
        * */
        System.out.println(collection.size());
        System.out.println("--------------------------");

        /*
        * boolean add(E e); 把指定对象添加到当前集合中，添加成功返回true
        * boolean addAll(Collection c); 把指定集合元素添加到当前集合中，添加成功返回true
        * */
        collection.add(123);
        collection.add("wjm");
        collection.add(123.45);
        collection.add("78");
        collection.add(new int[]{123,456});
        System.out.println(collection.size());
        System.out.println(collection);

        //创建一个集合
        Collection c = new ArrayList();
        c.add("cwt");
        c.add(456);
        c.add(999);
        collection.addAll(c);
        System.out.println(collection.size());
        System.out.println(collection);
        System.out.println("--------------------------");

        /*
        * boolean isEmpty(); 判断当前集合是否为空
        * */
        boolean flag = collection.isEmpty();
        System.out.println("是否为空"+flag);
        System.out.println("--------------------------");

        /*
        * boolean contains(Object o); 判断当前集合是否包含指定对象
        * boolean containsAll(Collection c); 判断当前集合是否包含指定子集
        * */
        flag = collection.contains("wjm");
        System.out.println("是否包含对象"+flag);

        //创建一个子集
        Collection collection1 = new ArrayList();
        collection1.add(123);
        collection1.add("78");
        flag = collection.containsAll(collection1);
        System.out.println("是否包含子集"+flag);
        System.out.println("--------------------------");

        /*
        * Obiect[] toArray(); 将当前集合转换为Object对象数组
        * */
        Object[] object = collection.toArray();
        for (int i =0;i<object.length;i++){
            System.out.println(object[i]);
        }
        System.out.println("--------------------------");

        /*
        * boolean remove(Object o);将给定对象从集合中移除，成功返回true
        * boolean removeAll(Collection c);将给定子集从集合中移除，成功返回true
        * */
        flag = collection.remove("wjm");
        System.out.println("是否成功移除对象"+flag);
        System.out.println(collection);
        flag = collection.removeAll(collection1);
        System.out.println("是否成功移除子集"+flag);
        System.out.println(collection);
        System.out.println("--------------------------");

        /*
        * void clear();清空集合中所有元素
        * */
        collection.clear();
        System.out.println("清空后的长度"+collection.size());

    }
}
